#include<cmath>
#include<unordered_map>
using namespace std;
// 枚举因子技巧

// 枚举 x 的所有因子,存入哈希表中
unordered_map<int, int> cnt;
void enumerate_factors(int x)
{
	for (int i = 1; i <= sqrt(x); i++)
	{
		if (x % i)  // 如果不能整除，说明不是因子
			continue;
		// 能整除
		cnt[i]++;
		if (i * i < x)  // 因子总是成双成对出现的：例如12的因子有1，2，6，12；找到了1，也就找到了12；找到了2，也就找到了6。
						//当然，因子也可能会重复，比如36的因子，会有6x6，这样会计算两次6，所以要判定一下
			cnt[x / i]++;
	}
}